There exist applications in which there is a need to prevent one part of a computer from accessing (e.g. read from or write to) a memory location defined by a memory address while another part of the computer is modifying that location, lest the first part utilize outdated data. The present invention fulfills this need.
In a computer system, one or more memories can be so connected to a bus as to be accessible to more than one module of a computer. In a Read-Modify-Write situation, the content of a particular memory address is read, changed, and replaced with the changed content, by one module or part of a computer system. Sometimes, another module attempts to write to or read from the memory at that same particular memory address while the Read-Modify-Write is being accomplished. Where the latter read or write attempt occurs while a Read-Modify-Write is in progress, the memory read/write must be delayed or prevented until the Read-Modify-Write is completed. This is necessary to avoid processing by the system of old or outdated data and any errors that might result from same. Read-Modify-Write has been used to describe a process where memory at a particular memory address is read, the memory content at that location is modified and the modified content is written back into the memory at that same address. In a Read-Modify-Write (RMW) operation., one module of a computer system reads or retrieves data from a memory location or address, performs an operation on the data, and writes the modified data back to the original memory location or address. It is obviously desirable to prevent other modules or parts of the same computer system from accessing that same memory location while an RMW operation is in progress. It is also desirable to be able to provide such capability to an existing system as an upgrade, particularly if substantial modification of the existing system is not required to implement such an upgrade. The present invention fulfills these needs.
While other systems include structure intended to perform RMW operations, they have not proven entirely satisfactory in that they involve incorporation of the RMW circuitry into the computer system's memory, or direct connection of the RMW circuitry to, and thus modification of, the computer systems' memory. For example, an upgrade of a non-RMW or non-lockout capable system to incorporate such capabilities would therefore require modification of one or more major components of such systems. For a multiple-module memory, so placing the RMW logic necessitates repeating the RMW logic for each memory board or module, which is economically undesirable. There would then also be a need to compare the identity of the unit or module for which RMW is being performed, with the identity of the unit or module attempting to access memory during RMW.